1. Field of Invention
Embodiments of the invention relate, in general, to upgrading software in a router. More specifically, embodiments of the invention relate to a method and a system for minimizing disruption in forwarding packets during in-service software upgrade.
2. Description of the Background Art
Routers are often used for forwarding packets across a network based on the Internet Protocol (collectively referred to as IP networks) or on other telecommunication networks.
Routers forward packets by combining hardware-forwarding capabilities with software. For example, a typical router includes a Route Processor (RP) and a number of line cards. The RP performs the routing analysis and determines the next hop for the packets. Each RP controls a plurality of line cards that function as a line terminator for interfacing telecommunication lines from the source to the rest of the network. Since a single line card provides the interface from many sources, it is a general practice to have many line cards under the control of a typical router. While some line cards utilize a dedicated processor that is hard coded to control the forwarding process, it is often preferred to use line cards that may be upgraded from time to time. Therefore, the typical line card includes a processor, often referred to as a Central Processing Unit (CPU). The CPU controls the forwarding process under the control of software code stored in a local memory on the line card.
Once the router is deployed into the network, there are times when it is necessary to upgrade the software to enhance performance or to provide new capabilities. When an upgrade is required, the router must be taken off-line to transfer and install the new software. However, when the router is off-line, it is unable to forward packet traffic, if the router uses software forwarding line cards. This leads to changes in routing tables, which include information about the IP addresses of various devices in the network. This results in the requirement for updating the routing tables throughout the network. During the updating of the routing tables, the packets are still sent in the network but the process of updating the routing tables causes undesirable network congestion, delays, and packet loss.
To overcome this problem and maintain the integrity of the routing tables, a Hot Standby Redundant Distributed (HSRD) system is often implemented. In an HSRD system, multiple route processors share an identical Internet Protocol (IP) address and a Media Access Control (MAC) address, and act together to provide a single virtual route processor in a typical router. One of the route processors in the HSRD system, referred as an active route processor, is responsible for forwarding packets. The other route processor is referred as a standby route processor. The standby route processor will take over and forward packets when the active route processor is to be taken off-line and upgraded. As a result, HSRD system maintains the forwarding of packets with the standby route processor taking control of the line cards until the software upgrade is complete on the active route processor in the router.
However, during the changeover to the standby route processor, the forwarding of the packets with the HSRD system may still get disrupted while the software code that controls the CPU on the line cards is updated to maintain compatibility with the standby route processor. This delay results in some packets being delayed or lost. Therefore, it is desirable to minimize data plane outage. For example in order to support VoIP requirements it is essential that the data plane suffers an outage of no more than 2.5 seconds (as per Bellcore standard GRE-253 for TDM Voice). Further, it is also desirable to minimize control plane outage in order that neighboring routers do not notice that the router is being upgraded. Different applications and protocols have varying timeout values, before a neighbouring router notices a peer outage.